﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using ObjectManager;

namespace QuanLyDiem
{
    public partial class frmQLMonHoc : Form
    {
        private static frmQLMonHoc frm = null;

        private frmQLMonHoc()
        {
            InitializeComponent();
        }

        public static frmQLMonHoc Create()
        {
            if (frm == null)
            {
                frm = new frmQLMonHoc();
                return frm;
            }
            return frm;
        }

        private void frmQLMonHoc_FormClosing(object sender, FormClosingEventArgs e)
        {
            //frm.Dispose();
            frm = null;
        }

        private void BindingData()
        {
            if (dgvMonHoc.SelectedRows.Count > 0)
            {
                txtTen.Text = dgvMonHoc.SelectedRows[0].Cells["cTen"].Value.ToString();
                txtSoTC.Text = dgvMonHoc.SelectedRows[0].Cells["cSoTC"].Value.ToString();
                txtDiemQT.Text = dgvMonHoc.SelectedRows[0].Cells["cHSDiemQT"].Value.ToString();
                txtDiemT.Text = dgvMonHoc.SelectedRows[0].Cells["cHSDiemT"].Value.ToString();
                cmbBoMon.Text = dgvMonHoc.SelectedRows[0].Cells["cBoMon"].Value.ToString();
                txtGhiChu.Text = dgvMonHoc.SelectedRows[0].Cells["cGhiChu"].Value.ToString();
            }
        }

        private void frmQLMonHoc_Load(object sender, EventArgs e)
        {
            BoMon bomon = new BoMon();
            cmbBoMon.DataSource = bomon.ListName();
            MonHoc monhoc = new MonHoc();
            dgvMonHoc.DataSource = monhoc.ListAll();
            BindingData();
        }

        private void dgvMonHoc_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            BindingData();
        }

        private void btnThem_Click(object sender, EventArgs e)
        {
            if (btnThen.Text == "Tạo mới")
            {
                btnXoa.Enabled = false;
                btnSua.Text = "Hủy";
                btnThen.Text = "Thêm";
                foreach (Control item in pnControl.Controls)
                {
                    if (item.GetType() == typeof(TextBox))
                    {
                        item.Text = "";
                    }
                }
            }
            else
            {
                MonHoc monhoc = new MonHoc();
                monhoc.ThongTin.Ten = txtTen.Text;
                monhoc.ThongTin.SoTinChi = int.Parse(txtSoTC.Text);
                monhoc.ThongTin.HeSoDiemQT = txtDiemQT.Text;
                monhoc.ThongTin.BoMon = cmbBoMon.Text;
                monhoc.ThongTin.GhiChu = txtGhiChu.Text;
                int check = monhoc.Add();
                if (check > 0)
                {
                    MessageBox.Show("Đã thêm thành công môn học", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    DataTable dt = (DataTable)dgvMonHoc.DataSource;
                    DataRow dr = dt.NewRow();
                    dr[0] = txtTen.Text;
                    dr[1] = txtSoTC.Text;
                    dr[2] = txtDiemQT.Text;
                    dr[3] = monhoc.ThongTin.HeSoDiemT.Replace('.', ',');
                    dr[4] = cmbBoMon.Text;
                    dr[5] = txtGhiChu.Text;
                    dt.Rows.Add(dr);
                    //dgvMonHoc.DataSource = dt;
                }
            }
        }

        private void btnSua_Click(object sender, EventArgs e)
        {
            if (btnSua.Text == "Sửa")
            {
                DialogResult dalrs = MessageBox.Show("Bạn có chắc chán muốn sửa thông tin môn học không?", "Thông báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
                if (dalrs == DialogResult.OK)
                {
                    if (dgvMonHoc.SelectedRows.Count > 0)
                    {
                        MonHoc monhoc = new MonHoc();
                        monhoc.ThongTin.Ten = txtTen.Text;
                        monhoc.ThongTin.SoTinChi = int.Parse(txtSoTC.Text);
                        monhoc.ThongTin.HeSoDiemQT = txtDiemQT.Text;
                        monhoc.ThongTin.BoMon = cmbBoMon.Text;
                        monhoc.ThongTin.GhiChu = txtGhiChu.Text;
                        int check = monhoc.Update();
                        if (check > 0)
                        {
                            MessageBox.Show("Đã sửa thành công môn học", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            DataTable dt = (DataTable)dgvMonHoc.DataSource;
                            DataRow dr = dt.NewRow();
                            //dr[0] = 
                            dr[1] = txtTen.Text;
                            dr[2] = txtSoTC.Text;
                            dr[3] = txtDiemQT.Text.Replace('.', ',');
                            dr[4] = (1 - float.Parse(txtDiemQT.Text)).ToString();
                            dr[5] = cmbBoMon.Text;
                            dr[6] = txtGhiChu.Text;
                            dt.Rows.InsertAt(dr, dgvMonHoc.SelectedRows[0].Index + 1);
                            //dgvMonHoc.DataSource = dt;
                            dt.Rows.RemoveAt(dgvMonHoc.SelectedRows[0].Index);
                            BindingData();
                        }
                    }
                }
            }
            else
            {
                btnXoa.Enabled = true;
                btnSua.Text = "Sửa";
                btnThen.Text = "Tạo mới";
                BindingData();
            }
        }

        private void btnXoa_Click(object sender, EventArgs e)
        {
            int count = dgvMonHoc.SelectedRows.Count;
            DialogResult dalrs = MessageBox.Show("Bạn có chắc chán muốn xóa " + count.ToString() + " môn học không?", "Thông báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
            count = 0;
            if (dalrs == DialogResult.OK)
            {
                MonHoc monhoc = new MonHoc();
                foreach (DataGridViewRow item in dgvMonHoc.SelectedRows)
                {
                    monhoc.ThongTin.Ten = item.Cells["cTen"].Value.ToString();
                    int check = monhoc.Remove();
                    if (check > 0)
                    {
                        count++;
                        dgvMonHoc.Rows.Remove(item);
                    }
                }
                BindingData();
                if (count > 0)
                {
                    MessageBox.Show("Đã xóa thành công " + count.ToString() + " môn học", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
        }

        private void btnThoat_Click(object sender, EventArgs e)
        {
            MessageBox.Show(float.Parse("12,5").ToString());
        }
    }
}
